package string;

public class Demo01 {
    public static void main(String[] args) {
        String s1="123ABC";
        String s2="123ABC";
        String s3="123ABC";
        System.out.println(s1==s2);
        System.out.println(s2==s3);
        System.out.println(s1==s3);
        /**
         * s1)在堆中创建123ABC字面量对象，字符串常量池中缓存其地址
         * s2)字符串常量池检查到相同的字面量对象，直接把地址辅助给s2
         * s3)字符串常量池检查到相同的字面量对象，直接把地址辅助给s3
         *
         * ==比较的是地址
         */

        String s4="123"+"ABC";
        System.out.println(s4==s3);
        /**
         * s4)编译器发现两个字面量相连，会直接连接好并在字符串常量池里缓存好其地址
         */


        String s5="123";
        String s6=s5+"ABC";
        System.out.println(s5==s6);
        /**
         * s5)是个变量，编译时候不会直接连接好
         * s6)创建一个新的对象存储123ABC
         */
    }
}
